Electronic data systems are frequently interconnected using network communication Systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", are a form of cross-point switching.
Conventional Fibre Channel Arbitrated Loop ("FC-AL") protocols provide for loop functionality in the interconnection of devices or loop segments through node ports. However, direct interconnection of node ports is problematic in that a failure at one node port in a loop typically causes the failure of the entire loop. This difficulty is overcome in conventional Fibre Channel technology through the use of hubs. Hubs include a number of hub ports interconnected in a loop topology. Node ports are connected to hub ports, forming a star topology with the hub at the center. Hub ports which are not connected to node ports or which are connected to failed node ports are bypassed. In this way, the loop is maintained despite removal or failure of node ports.
FIG. 1A illustrates two conventional hubs with attached node ports, where a node port represents a connection to a single operational device or may represent a loop segment of a series of devices directly interconnected. Each node port typically has two data channels, one data channel carrying data from the hub port to the node port, and one data channel carrying data from the node port to the hub port.
In FIG. 1A, hub 100 has four hub ports 102, 104, 106, 108 (the number of hub ports shown in the hubs of figures herein is for illustrative purposes only and is not a limitation on the operation or construction of hubs according to embodiments within the scope of the present invention). Hub ports 102-108 of hub 100 are interconnected by a series of internal hub links 110, 112, 114, 116. In this way, hub ports 102-108 are connected in a loop topology by internal hub links 110-116. The data path of the loop flows: from hub port 102 through internal hub link 110 to hub port 104; out to node port 124 and back to hub port 104; through internal hub link 112 to hub port 106; through internal hub link 114 to hub port 108; through internal hub link 116 to hub port 102; out to node port 118 and back to hub port 102, completing the loop.
Node ports are attached to hub 100 in a physical star topology. However, the internal loop topology of hub 100 provided by the interconnection of hub ports 102-108 provides an effective loop topology for node ports attached tb hub 100. A node port 118 is attached to hub 100 at hub port 102. A data channel 120 carries data from node port 118 to hub port 102. A data channel 122 carries data from hub port 102 to node port 118. These data channels 120, 122 create the connection between node port 118 and the loop internal to hub 100. A second node port 124 is also attached to hub 100 at hub port 104 with data channels in the same way.
FIG. 1A also shows a second hub 150. Hub 150, similar to hub 100, contains four hub ports 152, 154, 156, 158 which are interconnected by internal hub links 160, 162, 164, 166 in a loop topology. Two node ports 168, 170 are attached to hub 150 at hub ports 152 and 156, respectively, with pairs of data channels. As shown in FIG. 1A, hub 100 and hub 150 form two independent loops. Thus, node port 118 and node port 124 can communicate, node port 168 and port 170 can communicate, but node port 118 has no connection to node ports 168 or 170.
A conventional technique for joining the loops contained within hub 100 and hub 150 is illustrated in FIG. 1B. As described above, each hub port of a hub has two data channels which are available to connect the hub port to a node port (recall in FIG. 1A, data channel 120 carries data from node port 118 to hub port 102 and data channel 122 carries data from hub port 102 to node port 118). In FIG. 1B, the connection of hub 100 to hub 150 is accomplished by linking data channels of two hub ports, one hub port from each hub. In FIG. 1B, two data channels 172, 174 connect hub port 106 of hub port 100 to hub port 164 of hub 150. Data channel 172 carries data channel from hub port 106 to hub port 154. Data channel 174 carries data from hub port 154 to hub port 106. Data channels 172, 174 perform a similar function to internal hub links 110-116, 160-166, carrying data from one hub port to the next hub port in the loop. This interconnection between hub ports 106 and 154 connects the loops contained within hubs 100 and 150.
The datapath throughout the linked loop topology follows a circular pattern of hub ports and no deports: 102, 104, 124, 104, 106, 154, 156, 170, 156, 158, 152, 168, 152, 154, 106, 108, 102, 118, 102. In this sense, hub ports 106 and 154 act as a common juncture between the two loops defined by hubs 100 and 150. In contrast to the configuration in FIG. 1A, in FIG. 1B node port 118 can communicate with any of the other node ports in the expanded loop: node port 124, node port 168 and node port 170.
A problem with the technique illustrated in FIG. 1B is that each hub must dedicate at least one hub port to the linking operations and connections between hubs. In this event, the logic and circuitry internal to a hub port, which is designed to interact with a node port or loop segment, is rendered idle and wasted.
In addition, the connection and disconnection of hubs, which are connected as illustrated in FIG. 1B, is sometimes a logistically complicated physical process involving the actual movement of cable or devices. Another problematic aspect of the hub port to hub port connection illustrated in FIG. 1B is that such a connection process is only useful to join separate hubs. It may be desirable to divide a hub into smaller pieces in order to increase the granularity of the loop element. The solution of hub port to hub port interconnection illustrated in FIG. 1B does not offer any help for this problem.
The inventors have determined that it would be desirable to have a scalable hub port which provides programmable scalability in joining or separating a group of internal hubs to a single scalable hub. In addition, the inventors have determined it would be desirable to provide a scalable hub which allows this expansion and scalability without using hub ports and their associated hub port logic.